Configure WCF client to connect to the AMI Event Service - 61968-9 2nd Edition
EndDeviceEvents.xsd |
Copy Code
|
---|---|
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:a="http://langdale.com.au/2005/Message#" xmlns:sawsdl="http://www.w3.org/ns/sawsdl" targetNamespace="http://iec.ch/TC57/2011/EndDeviceEvents#" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns="http://langdale.com.au/2005/Message#" xmlns:m="http://iec.ch/TC57/2011/EndDeviceEvents#"> <xs:annotation/> <xs:element name="EndDeviceEvents" type="m:EndDeviceEvents"/> <xs:complexType name="EndDeviceEvents"> <xs:sequence> <xs:element name="EndDeviceEvent" type="m:EndDeviceEvent" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="EndDeviceEventType" type="m:EndDeviceEventType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="Asset" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Asset"> <xs:annotation> <xs:documentation>Tangible resource of the utility, including power system equipment, various end devices, cabinets, buildings, etc. For electrical network equipment, the role of the asset is defined through PowerSystemResource and its subclasses, defined mainly in the Wires model (refer to IEC61970-301 and model package IEC61970::Wires). Asset description places emphasis on the physical characteristics of the equipment fulfilling that role.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="mRID" minOccurs="0" maxOccurs="1" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#IdentifiedObject.mRID"> <xs:annotation> <xs:documentation>A Model Authority issues mRIDs. Given that each Model Authority has a unique id and this id is part of the mRID, then the mRID is globally unique.</xs:documentation> <xs:documentation>Global uniqeness is easily achived by using a UUID for the mRID. It is strongly recommended to do this.</xs:documentation> <xs:documentation>For CIMXML data files the mRID is mapped to rdf:ID or rdf:about attributes that identifies CIM object elements.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Names" minOccurs="0" maxOccurs="unbounded" type="m:Name" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#IdentifiedObject.Names"> <xs:annotation> <xs:documentation>All names of this identified object.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="EndDeviceEvent" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#EndDeviceEvent"> <xs:annotation> <xs:documentation>Event detected by a device function associated with end device.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="mRID" minOccurs="0" maxOccurs="1" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#IdentifiedObject.mRID"> <xs:annotation> <xs:documentation>A Model Authority issues mRIDs. Given that each Model Authority has a unique id and this id is part of the mRID, then the mRID is globally unique.</xs:documentation> <xs:documentation>Global uniqeness is easily achived by using a UUID for the mRID. It is strongly recommended to do this.</xs:documentation> <xs:documentation>For CIMXML data files the mRID is mapped to rdf:ID or rdf:about attributes that identifies CIM object elements.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="createdDateTime" minOccurs="1" maxOccurs="1" type="xs:dateTime" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#ActivityRecord.createdDateTime"> <xs:annotation> <xs:documentation>Date and time this activity record has been created (different from the 'status.dateTime', which is the time of a status change of the associated object, if applicable).</xs:documentation> </xs:annotation> </xs:element> <xs:element name="issuerID" minOccurs="0" maxOccurs="1" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#EndDeviceEvent.issuerID"> <xs:annotation> <xs:documentation>Unique identifier of the business entity originating an end device control.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="issuerTrackingID" minOccurs="0" maxOccurs="1" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#EndDeviceEvent.issuerTrackingID"> <xs:annotation> <xs:documentation>Identifier assigned by the initiator (e.g. retail electric provider) of an end device control action to uniquely identify the demand response event, text message, or other subject of the control action. Can be used when cancelling an event or text message request or to identify the originating event or text message in a consequential end device event.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="reason" minOccurs="0" maxOccurs="1" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#ActivityRecord.reason"> <xs:annotation> <xs:documentation>Reason for event resulting in this activity record, typically supplied when user initiated.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="severity" minOccurs="0" maxOccurs="1" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#ActivityRecord.severity"> <xs:annotation> <xs:documentation>Severity level of event resulting in this activity record.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="userID" minOccurs="0" maxOccurs="1" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#EndDeviceEvent.userID"> <xs:annotation> <xs:documentation>(if user initiated) ID of user who initiated this end device event.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Assets" minOccurs="0" maxOccurs="1" type="m:Asset" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#ActivityRecord.Assets"> <xs:annotation> <xs:documentation>All assets for which this activity record has been created.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="EndDeviceEventDetails" minOccurs="0" maxOccurs="unbounded" type="m:EndDeviceEventDetail" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#EndDeviceEvent.EndDeviceEventDetails"> <xs:annotation> <xs:documentation>All details of this end device event.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="EndDeviceEventType" minOccurs="1" maxOccurs="1" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#EndDeviceEvent.EndDeviceEventType"> <xs:annotation> <xs:documentation>Type of this end device event.</xs:documentation> </xs:annotation> <xs:complexType sawsdl:modelReference=""> <xs:attribute name="ref" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="Names" minOccurs="0" maxOccurs="unbounded" type="m:Name" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#IdentifiedObject.Names"> <xs:annotation> <xs:documentation>All names of this identified object.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="status" minOccurs="0" maxOccurs="1" type="m:Status" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#ActivityRecord.status"> <xs:annotation> <xs:documentation>Information on consequence of event resulting in this activity record.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="UsagePoint" minOccurs="0" maxOccurs="1" type="m:UsagePoint" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#EndDeviceEvent.UsagePoint"> <xs:annotation> <xs:documentation>Usage point for which this end device event is reported.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="EndDeviceEventDetail" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#EndDeviceEventDetail"> <xs:annotation> <xs:documentation>Name-value pair, specific to end device events.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="name" minOccurs="1" maxOccurs="1" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#EndDeviceEventDetail.name"> <xs:annotation> <xs:documentation>Name.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="value" minOccurs="0" maxOccurs="1" type="m:StringQuantity" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#EndDeviceEventDetail.value"> <xs:annotation> <xs:documentation>Value, including unit information.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="EndDeviceEventType" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#EndDeviceEventType"> <xs:annotation> <xs:documentation>Detailed description for an event produced by an end device. Values in attributes allow for creation of recommended codes to be used for identifying end device events as follows: &lt;type&gt;.&lt;domain&gt;.&lt;subDomain&gt;.&lt;eventOrAction&gt;.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="mRID" minOccurs="0" maxOccurs="1" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#IdentifiedObject.mRID"> <xs:annotation> <xs:documentation>A Model Authority issues mRIDs. Given that each Model Authority has a unique id and this id is part of the mRID, then the mRID is globally unique.</xs:documentation> <xs:documentation>Global uniqeness is easily achived by using a UUID for the mRID. It is strongly recommended to do this.</xs:documentation> <xs:documentation>For CIMXML data files the mRID is mapped to rdf:ID or rdf:about attributes that identifies CIM object elements.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="domain" minOccurs="0" maxOccurs="1" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#EndDeviceEventType.domain"> <xs:annotation> <xs:documentation>High-level nature of the event. By properly classifying events by a small set of domain codes, a system can more easily run reports based on the types of events that have occurred or been received.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="eventOrAction" minOccurs="0" maxOccurs="1" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#EndDeviceEventType.eventOrAction"> <xs:annotation> <xs:documentation>The most specific part of this event type. It is mainly in the form of a verb that gives action to the event that just occurred.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="subDomain" minOccurs="0" maxOccurs="1" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#EndDeviceEventType.subDomain"> <xs:annotation> <xs:documentation>More specific nature of the event, as a further sub-categorisation of 'domain'.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="type" minOccurs="0" maxOccurs="1" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#EndDeviceEventType.type"> <xs:annotation> <xs:documentation>Type of physical device from which the event was created. A value of zero (0) can be used when the source is unknown.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Names" minOccurs="1" maxOccurs="unbounded" type="m:Name" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#IdentifiedObject.Names"> <xs:annotation> <xs:documentation>All names of this identified object.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="Name" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Name"> <xs:annotation> <xs:documentation>The Name class provides the means to define any number of human readable names for an object. A name is <b>not</b> to be used for defining inter-object relationships. For inter-object relationships instead use the object identification 'mRID'.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="name" minOccurs="1" maxOccurs="1" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Name.name"> <xs:annotation> <xs:documentation>Any free text that name the object.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="NameType" minOccurs="0" maxOccurs="1" type="m:NameType" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Name.NameType"> <xs:annotation> <xs:documentation>Type of this name.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="NameType" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#NameType"> <xs:annotation> <xs:documentation>Type of name. Possible values for attribute 'name' are implementation dependent but standard profiles may specify types. An enterprise may have multiple IT systems each having its own local name for the same object, e.g. a planning system may have different names from an EMS. An object may also have different names within the same IT system, e.g. localName and aliasName as defined in CIM version 14. Their definitions from CIM14 are</xs:documentation> <xs:documentation>The localName is a human readable name of the object. It is only used with objects organized in a naming hierarchy. localName: A free text name local to a node in a naming hierarchy similar to a file directory structure. A power system related naming hierarchy may be: Substation, VoltageLevel, Equipment etc. Children of the same parent in such a hierarchy have names that typically are unique among them.</xs:documentation> <xs:documentation>aliasName: A free text alternate name typically used in tabular reports where the column width is limited.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#NameType.description"> <xs:annotation> <xs:documentation>Description of the name type.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="name" minOccurs="1" maxOccurs="1" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#NameType.name"> <xs:annotation> <xs:documentation>Name of the name type.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="NameTypeAuthority" minOccurs="0" maxOccurs="1" type="m:NameTypeAuthority" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#NameType.NameTypeAuthority"> <xs:annotation> <xs:documentation>Authority responsible for managing names of this type.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="NameTypeAuthority" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#NameTypeAuthority"> <xs:annotation> <xs:documentation>Authority responsible for creation and management of names of a given type; typically an organization or an enterprise system.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#NameTypeAuthority.description"> <xs:annotation> <xs:documentation>Description of the name type authority.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="name" minOccurs="1" maxOccurs="1" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#NameTypeAuthority.name"> <xs:annotation> <xs:documentation>Name of the name type authority.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="Status" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Status"> <xs:annotation> <xs:documentation>Current status information relevant to an entity.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="dateTime" minOccurs="0" maxOccurs="1" type="xs:dateTime" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Status.dateTime"> <xs:annotation> <xs:documentation>Date and time for which status 'value' applies.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="reason" minOccurs="0" maxOccurs="1" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Status.reason"> <xs:annotation> <xs:documentation>Reason code or explanation for why an object went to the current status 'value'.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="remark" minOccurs="0" maxOccurs="1" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Status.remark"> <xs:annotation> <xs:documentation>Pertinent information regarding the current 'value', as free form text.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="value" minOccurs="0" maxOccurs="1" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#Status.value"> <xs:annotation> <xs:documentation>Status value at 'dateTime'; prior status changes may have been kept in instances of activity records associated with the object to which this status applies.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="UsagePoint" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#UsagePoint"> <xs:annotation> <xs:documentation>Logical or physical point in the network to which readings or events may be attributed. Used at the place where a physical or virtual meter may be located; however, it is not required that a meter be present.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="mRID" minOccurs="0" maxOccurs="1" type="xs:string" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#IdentifiedObject.mRID"> <xs:annotation> <xs:documentation>A Model Authority issues mRIDs. Given that each Model Authority has a unique id and this id is part of the mRID, then the mRID is globally unique.</xs:documentation> <xs:documentation>Global uniqeness is easily achived by using a UUID for the mRID. It is strongly recommended to do this.</xs:documentation> <xs:documentation>For CIMXML data files the mRID is mapped to rdf:ID or rdf:about attributes that identifies CIM object elements.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Names" minOccurs="0" maxOccurs="unbounded" type="m:Name" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#IdentifiedObject.Names"> <xs:annotation> <xs:documentation>All names of this identified object.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:simpleType name="StringQuantity" sawsdl:modelReference="http://iec.ch/TC57/2010/CIM-schema-cim15#StringQuantity"> <xs:annotation> <xs:documentation>Quantity with string value (when it is not important whether it is an integral or a floating point number) and associated unit information.</xs:documentation> </xs:annotation> <xs:restriction base="xs:string"/> </xs:simpleType> </xs:schema> |
EndDeviceEventsMessage.xsd |
Copy Code
|
---|---|
<?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:tns="http://iec.ch/TC57/2011/EndDeviceEventsMessage" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msg="http://iec.ch/TC57/2011/schema/message" xmlns:obj="http://iec.ch/TC57/2011/EndDeviceEvents#" targetNamespace="http://iec.ch/TC57/2011/EndDeviceEventsMessage" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0.0"> <!-- Base Message Definitions --> <xs:import namespace="http://iec.ch/TC57/2011/schema/message" schemaLocation="Message.xsd"/> <!-- CIM Information Object Definition --> <xs:import namespace="http://iec.ch/TC57/2011/EndDeviceEvents#" schemaLocation="EndDeviceEvents.xsd"/> <!-- PayloadType Definition --> <xs:complexType name="EndDeviceEventsPayloadType"> <xs:sequence> <xs:element ref="obj:EndDeviceEvents"/> <xs:element name="OperationSet" type="msg:OperationSet" minOccurs="0"/> <xs:element name="Compressed" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation>For compressed and/or binary, uuencoded payloads</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Format" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation>Hint as to format of payload, e.g. XML, RDF, SVF, BINARY, PDF, ...</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <!-- Message Types --> <!-- RequestMessageType --> <xs:complexType name="EndDeviceEventsRequestMessageType"> <xs:sequence> <xs:element name="Header" type="msg:HeaderType"/> <xs:element name="Request" type="msg:RequestType" minOccurs="0"/> <xs:element name="Payload" type="tns:EndDeviceEventsPayloadType" minOccurs="0"/> </xs:sequence> </xs:complexType> <!-- ResponseMessageType --> <xs:complexType name="EndDeviceEventsResponseMessageType"> <xs:sequence> <xs:element name="Header" type="msg:HeaderType"/> <xs:element name="Reply" type="msg:ReplyType"/> <xs:element name="Payload" type="tns:EndDeviceEventsPayloadType" minOccurs="0"/> </xs:sequence> </xs:complexType> <!-- EventMessageType --> <xs:complexType name="EndDeviceEventsEventMessageType"> <xs:sequence> <xs:element name="Header" type="msg:HeaderType"/> <xs:element name="Payload" type="tns:EndDeviceEventsPayloadType" minOccurs="0"/> </xs:sequence> </xs:complexType> <!-- FaultMessageType --> <xs:complexType name="EndDeviceEventsFaultMessageType"> <xs:sequence> <xs:element name="Reply" type="msg:ReplyType"/> </xs:sequence> </xs:complexType> <xs:element name="CreateEndDeviceEvents" type="tns:EndDeviceEventsRequestMessageType"/> <xs:element name="ChangeEndDeviceEvents" type="tns:EndDeviceEventsRequestMessageType"/> <xs:element name="CancelEndDeviceEvents" type="tns:EndDeviceEventsRequestMessageType"/> <xs:element name="CloseEndDeviceEvents" type="tns:EndDeviceEventsRequestMessageType"/> <xs:element name="DeleteEndDeviceEvents" type="tns:EndDeviceEventsRequestMessageType"/> <xs:element name="CreatedEndDeviceEvents" type="tns:EndDeviceEventsEventMessageType"/> <xs:element name="ChangedEndDeviceEvents" type="tns:EndDeviceEventsEventMessageType"/> <xs:element name="CanceledEndDeviceEvents" type="tns:EndDeviceEventsEventMessageType"/> <xs:element name="ClosedEndDeviceEvents" type="tns:EndDeviceEventsEventMessageType"/> <xs:element name="DeletedEndDeviceEvents" type="tns:EndDeviceEventsEventMessageType"/> <xs:element name="EndDeviceEventsResponseMessage" type="tns:EndDeviceEventsResponseMessageType"/> <xs:element name="EndDeviceEventsFaultMessage" type="tns:EndDeviceEventsFaultMessageType"/> </xs:schema> |
Message.xsd |
Copy Code
|
---|---|
<?xml version="1.0" encoding="utf-8"?> <!-- edited with XMLSpy v2007 sp1 (http://www.altova.com) by Scott Neumann (UISOL) 2011/03/09 --> <!-- Common Message Specification for IEC 61968 --> <!-- Change Log --> <!-- 2010/12/15 Added OperationSet to Payload --> <!-- 2011/03/09 Corrected FaultMessageType --> <!-- 2011/03/09 Baseline for version control --> <!-- 2011/03/10 Created type definitions for OperationSet and Operation to improve compatibility with SoapUI --> <!-- 2011/05/06 Removed deprecated verbs, added 'executed' --> <!-- 2011/05/06 Changed base namespace to follow WG14 convention of 'iec.ch' --> <!-- 2011/09/02 Re-introduced the processContents="skip" attribute that was accidently dropped from the PayloadType definition --> <xs:schema xmlns="http://iec.ch/TC57/2011/schema/message" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://iec.ch/TC57/2011/schema/message" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0.0"> <xs:complexType name="RequestType"> <xs:annotation> <xs:documentation>Request type definition</xs:documentation> </xs:annotation> <xs:sequence> <xs:annotation> <xs:documentation>Request package is typically used to supply parameters for 'get' requests</xs:documentation> </xs:annotation> <xs:element name="StartTime" type="xs:dateTime" minOccurs="0"> <xs:annotation> <xs:documentation>Start time of interest</xs:documentation> </xs:annotation> </xs:element> <xs:element name="EndTime" type="xs:dateTime" minOccurs="0"> <xs:annotation> <xs:documentation>End time of interest</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Option" type="OptionType" minOccurs="0" maxOccurs="unbounded"> <xs:annotation> <xs:documentation>Request type specialization</xs:documentation> </xs:annotation> </xs:element> <xs:element name="ID" type="xs:string" minOccurs="0" maxOccurs="unbounded"> <xs:annotation> <xs:documentation>Object ID for request</xs:documentation> </xs:annotation> </xs:element> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"> <xs:annotation> <xs:documentation>This can be a CIM profile defined as an XSD with a CIM-specific namespace</xs:documentation> </xs:annotation> </xs:any> </xs:sequence> </xs:complexType> <xs:complexType name="ReplyType"> <xs:annotation> <xs:documentation>Reply type definition</xs:documentation> </xs:annotation> <xs:sequence> <xs:annotation> <xs:documentation>Reply package is used to confirm success or report errors</xs:documentation> </xs:annotation> <xs:element name="Result"> <xs:annotation> <xs:documentation>Reply code: OK, PARTIAL or FAILED</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="OK"/> <xs:enumeration value="PARTIAL"/> <xs:enumeration value="FAILED"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="Error" type="ErrorType" minOccurs="0" maxOccurs="unbounded"> <xs:annotation> <xs:documentation>Reply details describing one or more errors</xs:documentation> </xs:annotation> </xs:element> <xs:element name="ID" type="xs:string" minOccurs="0" maxOccurs="unbounded"> <xs:annotation> <xs:documentation>Resulting transaction ID (usually consequence of create)</xs:documentation> </xs:annotation> </xs:element> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="operationId" type="xs:integer" minOccurs="0"> <xs:annotation> <xs:documentation>The reply.operationId provides the unique identifier of the Operation for which this reply.result is relevant. Thus, it is assumed that this is a partial reply in direct response to one of the operations contained in an OperationSet request.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="PayloadType"> <xs:annotation> <xs:documentation>Payload container</xs:documentation> </xs:annotation> <xs:sequence> <xs:choice> <xs:any namespace="##other" processContents="skip" minOccurs="0" maxOccurs="unbounded"> <xs:annotation> <xs:documentation>For XML payloads, usually CIM profiles defined using an XSD in a profile-specific namespace.</xs:documentation> </xs:annotation> </xs:any> <xs:element name="OperationSet" type="OperationSet" minOccurs="0"> <xs:annotation> <xs:documentation>Each operation set is a collection of operations that may require operational-integrity and/or sequence control.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Compressed" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation>For compressed and/or binary, uuencoded payloads</xs:documentation> </xs:annotation> </xs:element> </xs:choice> <xs:element name="Format" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation>Hint as to format of payload, e.g. XML, RDF, SVF, BINARY, PDF, ...</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="OperationType"> <xs:annotation> <xs:documentation>For master data set synchronization XML payloads.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="operationId" type="xs:integer"> <xs:annotation> <xs:documentation>The payload.operation.operationId provides the unique identifier (within the OperationSet) of the Operation for the purpose of reference in subsequent messages (e.g. OperationSet reply).</xs:documentation> </xs:annotation> </xs:element> <xs:element name="noun" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation>The payload.operation.##other also identifies the noun, this element is optionally supplied to simplify processing.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="verb" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation>"create", "delete", "change", etc.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="elementOperation" type="xs:boolean" default="false" minOccurs="0"> <xs:annotation> <xs:documentation>TRUE if the verb is operating at the element level. In such a case, the verb is to be applied to the elements populated in the payload.operation.##other below. If omitted, assume FALSE.</xs:documentation> </xs:annotation> </xs:element> <xs:any namespace="##other" processContents="skip" minOccurs="0"> <xs:annotation> <xs:documentation>An XML payload which carries a CIM profile defined using an XSD in a profile-specific namespate. Individual payloads are used collectively to create a series of related operations. See the "enforce" boolean flags in the header for instructions on how to process these messages.</xs:documentation> </xs:annotation> </xs:any> </xs:sequence> </xs:complexType> <xs:complexType name="OperationSet"> <xs:annotation> <xs:documentation>Each operation set is a collection of operations that may require operational-integrity and/or sequence control.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="enforceMsgSequence" type="xs:boolean" minOccurs="0"> <xs:annotation> <xs:documentation>If set to TRUE, the Operation.##other messages must be processed in the sequence presented. If omitted, assume FALSE.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="enforceTransactionalIntegrity" type="xs:boolean" minOccurs="0"> <xs:annotation> <xs:documentation>Set to TRUE when all of the Operation.##other messages must be processed successfully or else the entire message set must be rolled back. If omitted, assume TRUE.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Operation" type="OperationType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="ReplayDetectionType"> <xs:annotation> <xs:documentation>Used to detect and prevent replay attacks</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="Nonce" type="xs:string"/> <xs:element name="Created" type="xs:dateTime"/> </xs:sequence> </xs:complexType> <xs:complexType name="UserType"> <xs:annotation> <xs:documentation>User type definition</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="UserID" type="xs:string"> <xs:annotation> <xs:documentation>User identifier</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Organization" type="xs:string"> <xs:annotation> <xs:documentation>User parent organization identifier</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="HeaderType"> <xs:annotation> <xs:documentation>Message header type definition</xs:documentation> </xs:annotation> <xs:sequence> <xs:annotation> <xs:documentation>Message header contains control and descriptive information about the message.</xs:documentation> </xs:annotation> <xs:element name="Verb"> <xs:annotation> <xs:documentation>This enumerated list of verbs that can be used to form message types in compliance with the IEC 61968 standard.</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="cancel"/> <xs:enumeration value="canceled"/> <xs:enumeration value="change"/> <xs:enumeration value="changed"/> <xs:enumeration value="create"/> <xs:enumeration value="created"/> <xs:enumeration value="close"/> <xs:enumeration value="closed"/> <xs:enumeration value="delete"/> <xs:enumeration value="deleted"/> <xs:enumeration value="get"/> <xs:enumeration value="reply"/> <xs:enumeration value="execute"/> <xs:enumeration value="executed"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="Noun" type="xs:string"> <xs:annotation> <xs:documentation>The Noun of the Control Area identifies the main subject of the message type, typically a real world object defined in the CIM.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Revision" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation>Revision level of the message type.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="ReplayDetection" type="ReplayDetectionType" minOccurs="0"> <xs:annotation> <xs:documentation>Use to introduce randomness in the message to enhance effectiveness of encryption</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Context" minOccurs="0"> <xs:annotation> <xs:documentation>Intended context for information usage, e.g. PRODUCTION, TESTING, TRAINING, ...</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="PRODUCTION"/> <xs:enumeration value="TESTING"/> <xs:enumeration value="DEVELOPMENT"/> <xs:enumeration value="STUDY"/> <xs:enumeration value="TRAINING"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="Timestamp" type="xs:dateTime" minOccurs="0"> <xs:annotation> <xs:documentation>Application level relevant time and date for when this instance of the message type was produced. This is not intended to be used by middleware for message management.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Source" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation>Source system or application that sends the message</xs:documentation> </xs:annotation> </xs:element> <xs:element name="AsyncReplyFlag" type="xs:boolean" minOccurs="0"> <xs:annotation> <xs:documentation>Indicates whether or not reply should be asynchronous</xs:documentation> </xs:annotation> </xs:element> <xs:element name="ReplyAddress" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation>Address to be used for asynchronous replies, typically a URL/topic/queue.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="AckRequired" type="xs:boolean" minOccurs="0"> <xs:annotation> <xs:documentation>Indicates whether or not an acknowledgement is required</xs:documentation> </xs:annotation> </xs:element> <xs:element name="User" type="UserType" minOccurs="0"> <xs:annotation> <xs:documentation>User information of the sender</xs:documentation> </xs:annotation> </xs:element> <xs:element name="MessageID" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation>Unique message ID to be used for tracking messages</xs:documentation> </xs:annotation> </xs:element> <xs:element name="CorrelationID" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation>ID to be used by applications for correlating replies</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Comment" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation>Optional comment</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Property" type="MessageProperty" minOccurs="0" maxOccurs="unbounded"> <xs:annotation> <xs:documentation>Message properties can be used to identify information needed for extended routing and filtering capabilities</xs:documentation> </xs:annotation> </xs:element> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:element name="Message" type="MessageType"> <xs:annotation> <xs:documentation>Common IEC 61968 Message Definition</xs:documentation> </xs:annotation> </xs:element> <xs:complexType name="MessageProperty"> <xs:annotation> <xs:documentation>Message properties can be used for extended routing and filtering</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="Name" type="xs:string"/> <xs:element name="Value" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:element name="RequestMessage" type="RequestMessageType"> <xs:annotation> <xs:documentation>Request message structure</xs:documentation> </xs:annotation> </xs:element> <xs:element name="ResponseMessage" type="ResponseMessageType"> <xs:annotation> <xs:documentation>Response message structure</xs:documentation> </xs:annotation> </xs:element> <xs:element name="EventMessage" type="EventMessageType"> <xs:annotation> <xs:documentation>Event message structure</xs:documentation> </xs:annotation> </xs:element> <xs:complexType name="MessageType"> <xs:annotation> <xs:documentation>Generic Message Type</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="Header" type="HeaderType"/> <xs:element name="Request" type="RequestType" minOccurs="0"/> <xs:element name="Reply" type="ReplyType" minOccurs="0"/> <xs:element name="Payload" type="PayloadType" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="RequestMessageType"> <xs:annotation> <xs:documentation>Request Message Type, which will typically result in a ResponseMessage to be returned. This isn typically used to initiate a transaction or a query request.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="Header" type="HeaderType"/> <xs:element name="Request" type="RequestType" minOccurs="0"/> <xs:element name="Payload" type="PayloadType" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="ResponseMessageType"> <xs:annotation> <xs:documentation>Response MessageType, typically used to reply to a RequestMessage</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="Header" type="HeaderType"/> <xs:element name="Reply" type="ReplyType"/> <xs:element name="Payload" type="PayloadType" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="FaultMessageType"> <xs:annotation> <xs:documentation>Fault Messsage Type, which is used in cases where the incoming message (including the header) can not be parsed</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="Reply" type="ReplyType"/> </xs:sequence> </xs:complexType> <xs:complexType name="EventMessageType"> <xs:annotation> <xs:documentation>Event Message Type, which is used to indicate a condition of potential interest.</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="Header" type="HeaderType"/> <xs:element name="Payload" type="PayloadType" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="ErrorType"> <xs:annotation> <xs:documentation>Error Structure</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="code" type="xs:string"> <xs:annotation> <xs:documentation>Application defined error code</xs:documentation> </xs:annotation> </xs:element> <xs:element name="level" minOccurs="0"> <xs:annotation> <xs:documentation>Severity level, e.g. INFORMATIVE, WARNING, FATAL, CATASTROPHIC</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="INFORM"/> <xs:enumeration value="WARNING"/> <xs:enumeration value="FATAL"/> <xs:enumeration value="CATASTROPHIC"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="reason" minOccurs="0"> <xs:annotation> <xs:documentation>Description of the error</xs:documentation> </xs:annotation> </xs:element> <xs:element name="details" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation>Free form detailed text description of error</xs:documentation> </xs:annotation> </xs:element> <xs:element name="xpath" type="xs:QName" minOccurs="0"> <xs:annotation> <xs:documentation>XPath expression to identify specific XML element</xs:documentation> </xs:annotation> </xs:element> <xs:element name="stackTrace" type="xs:string" minOccurs="0"/> <xs:element name="Location" type="LocationType" minOccurs="0"/> <xs:element name="object" type="IdentifiedObject" minOccurs="0"/> <xs:element name="operationId" type="xs:integer" minOccurs="0"> <xs:annotation> <xs:documentation>The reply.operationId provides the unique identifier of the Operation for which this reply.result.error is relevant. Thus, it is assumed that this is an error from one of the operations contained in an OperationSet request.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="OptionType"> <xs:annotation> <xs:documentation>Request options</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="value" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="LocationType"> <xs:annotation> <xs:documentation>Process location where error was encountered</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="node" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation>Name of the pipeline/branch/route node where error occurred</xs:documentation> </xs:annotation> </xs:element> <xs:element name="pipeline" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation>Name of the pipeline where error occurred (if applicable)</xs:documentation> </xs:annotation> </xs:element> <xs:element name="stage" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation>Name of the stage where error occurred (if applicable)</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="IdentifiedObject"> <xs:annotation> <xs:documentation>From CIM</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="mRID" minOccurs="0"/> <xs:element name="Name" type="Name" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="objectType" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation>CIM class name that classiifies the identified object</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="NameType"> <xs:annotation> <xs:documentation>From CIM</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="name"/> <xs:element name="description" minOccurs="0"/> <xs:element name="NameTypeAuthority" type="NameTypeAuthority" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="Name"> <xs:annotation> <xs:documentation>From CIM</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="name"/> <xs:element name="NameType" type="NameType" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="NameTypeAuthority"> <xs:annotation> <xs:documentation>From CIM</xs:documentation> </xs:annotation> <xs:sequence> <xs:element name="name"/> <xs:element name="description" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:element name="FaultMessage" type="FaultMessageType"> <xs:annotation> <xs:documentation>Fault message structure</xs:documentation> </xs:annotation> </xs:element> </xs:schema> |